In addition to being a useful interactive data analysis tool, IDL is a powerful programming language. Many of IDL’s programming language features and constructs can be used either interactively at the IDL command line or as part of a larger program — which can itself be invoked at the IDL command line or by other programs. A program may or may not be compiled before execution. The type of programs you use in IDL will depend upon your tasks.